﻿using System;
using System.Collections.Generic;
using TSharp.Core.Util.Config;

namespace TSharp.Core.Mvc.Web
{
    /// <summary>
    ///     站点配置
    ///     <para>2010/10/27</para>
    ///     <para>TANGJINGBO</para>
    ///     <author>tangjingbo</author>
    /// </summary>
    public class SiteConfig : SystemConfig<SiteConfig>
    {
        /// <summary>
        ///     Gets or sets a value indicating whether [enable theme].
        /// </summary>
        /// <value>
        ///     <c>true</c> if [enable theme]; otherwise, <c>false</c>.
        /// </value>
        public bool EnableTheme { get; set; }

        /// <summary>
        ///     Gets or sets a value indicating whether [enable culture].
        /// </summary>
        /// <value>
        ///     <c>true</c> if [enable culture]; otherwise, <c>false</c>.
        /// </value>
        public bool EnableCulture { get; set; }

        /// <summary>
        ///     Gets or sets the cultures.
        /// </summary>
        /// <value>The cultures.</value>
        public List<Culture> Cultures { get; set; }

        /// <summary>
        ///     默认语言
        /// </summary>
        /// <value>The culture default.</value>
        public Culture CultureDefault { get; set; }

        /// <summary>
        ///     默认主题
        /// </summary>
        /// <value>The theme default.</value>
        public Theme ThemeDefault { get; set; }

        /// <summary>
        ///     网站主题
        /// </summary>
        /// <value>The themes.</value>
        public List<Theme> Themes { get; set; }


        public override Func<SiteConfig> Defalut
        {
            get
            {
                return () =>
                           {
                               return new SiteConfig
                                          {
                                              Themes = new List<Theme>
                                                           {
                                                               new Theme {Name = "defalut", Title = "默认主题"},
                                                               new Theme {Name = "blue", Title = "蓝色"},
                                                               new Theme {Name = "red", Title = "中国红"},
                                                               new Theme {Name = "yellow", Title = "杏花黄"},
                                                           },
                                              ThemeDefault = new Theme
                                                                 {
                                                                     Name = "default",
                                                                     Title = "默认主题"
                                                                 },
                                              CultureDefault = new Culture {Name = "zh-cn", Title = "中文(中华人民共和国)"},
                                              Cultures = getDefault()
                                          };
                           };
            }
        }

        #region 默认语言

        private List<Culture> getDefault()
        {
            return new List<Culture>
                       {
//new Culture(){Name="zu-ZA",Title ="isiZulu (iNingizimu Afrika)",Order =0}, 
                           new Culture {Name = "zh-TW", Title = "中文(台灣)", Order = 1},
//new Culture(){Name="zh-SG",Title ="中文(新加坡)",Order =2}, 
//new Culture(){Name="zh-MO",Title ="中文(澳門特别行政區)",Order =3}, 
//new Culture(){Name="zh-HK",Title ="中文(香港特别行政區)",Order =4}, 
                           new Culture {Name = "zh-CN", Title = "中文(中华人民共和国)", Order = 5},
/*
new Culture(){Name="yo-NG",Title ="Yoruba (Nigeria)",Order =6}, 
new Culture(){Name="xh-ZA",Title ="isiXhosa (uMzantsi Afrika)",Order =7}, 
new Culture(){Name="wo-SN",Title ="Wolof (Sénégal)",Order =8}, 
new Culture(){Name="vi-VN",Title ="Tiếng Việt (Việt Nam)",Order =9}, 
new Culture(){Name="uz-Latn-UZ",Title ="U'zbek (U'zbekiston Respublikasi)",Order =10}, 
new Culture(){Name="uz-Cyrl-UZ",Title ="Ўзбек (Ўзбекистон)",Order =11}, 
new Culture(){Name="ur-PK",Title ="اُردو (پاکستان)",Order =12}, 
new Culture(){Name="uk-UA",Title ="україньска (Україна)",Order =13}, 
new Culture(){Name="ug-CN",Title ="ئۇيغۇرچە (جۇڭخۇا خەلق جۇمھۇرىيىتى)",Order =14}, 
new Culture(){Name="tzm-Latn-DZ",Title ="Tamazight (Djazaïr)",Order =15}, 
new Culture(){Name="tt-RU",Title ="Татар (Россия)",Order =16}, 
new Culture(){Name="tr-TR",Title ="Türkçe (Türkiye)",Order =17}, 
new Culture(){Name="tn-ZA",Title ="Setswana (Aforika Borwa)",Order =18}, 
new Culture(){Name="tk-TM",Title ="türkmençe (Türkmenistan)",Order =19}, 
new Culture(){Name="th-TH",Title ="ไทย (ไทย)",Order =20}, 
new Culture(){Name="tg-Cyrl-TJ",Title ="Тоҷикӣ (Тоҷикистон)",Order =21}, 
new Culture(){Name="te-IN",Title ="తెలుగు (భారత దేశం)",Order =22}, 
new Culture(){Name="ta-IN",Title ="தமிழ் (இந்தியா)",Order =23}, 
new Culture(){Name="syr-SY",Title ="ܣܘܪܝܝܐ (سوريا)",Order =24}, 
new Culture(){Name="sw-KE",Title ="Kiswahili (Kenya)",Order =25}, 
new Culture(){Name="sv-SE",Title ="svenska (Sverige)",Order =26}, 
new Culture(){Name="sv-FI",Title ="svenska (Finland)",Order =27}, 
new Culture(){Name="sr-Latn-RS",Title ="srpski (Srbija)",Order =28}, 
new Culture(){Name="sr-Latn-ME",Title ="srpski (Crna Gora)",Order =29}, 
new Culture(){Name="sr-Latn-CS",Title ="srpski (Srbija i Crna Gora (Prethodno))",Order =30}, 
new Culture(){Name="sr-Latn-BA",Title ="srpski (Bosna i Hercegovina)",Order =31}, 
new Culture(){Name="sr-Cyrl-RS",Title ="српски (Србија)",Order =32}, 
new Culture(){Name="sr-Cyrl-ME",Title ="српски (Црна Гора)",Order =33}, 
new Culture(){Name="sr-Cyrl-CS",Title ="српски (Србија и Црна Гора (Претходно))",Order =34}, 
new Culture(){Name="sr-Cyrl-BA",Title ="српски (Босна и Херцеговина)",Order =35}, 
new Culture(){Name="sq-AL",Title ="shqipe (Shqipëria)",Order =36}, 
new Culture(){Name="sms-FI",Title ="sääm´ǩiõll (Lää´ddjânnam)",Order =37}, 
new Culture(){Name="smn-FI",Title ="sämikielâ (Suomâ)",Order =38}, 
new Culture(){Name="smj-SE",Title ="julevusámegiella (Svierik)",Order =39}, 
new Culture(){Name="smj-NO",Title ="julevusámegiella (Vuodna)",Order =40}, 
new Culture(){Name="sma-SE",Title ="åarjelsaemiengiele (Sveerje)",Order =41}, 
new Culture(){Name="sma-NO",Title ="åarjelsaemiengiele (Nöörje)",Order =42}, 
new Culture(){Name="sl-SI",Title ="slovenski (Slovenija)",Order =43}, 
new Culture(){Name="sk-SK",Title ="slovenčina (Slovenská republika)",Order =44}, 
new Culture(){Name="si-LK",Title ="සිංහ (ශ්‍රී ලංකා)",Order =45}, 
new Culture(){Name="se-SE",Title ="davvisámegiella (Ruoŧŧa)",Order =46}, 
new Culture(){Name="se-NO",Title ="davvisámegiella (Norga)",Order =47}, 
new Culture(){Name="se-FI",Title ="davvisámegiella (Suopma)",Order =48}, 
new Culture(){Name="sa-IN",Title ="संस्कृत (भारतम्)",Order =49}, 
new Culture(){Name="sah-RU",Title ="саха (Россия)",Order =50}, 
new Culture(){Name="rw-RW",Title ="Kinyarwanda (Rwanda)",Order =51}, 
new Culture(){Name="ru-RU",Title ="русский (Россия)",Order =52}, 
new Culture(){Name="ro-RO",Title ="română (România)",Order =53}, 
new Culture(){Name="rm-CH",Title ="Rumantsch (Svizra)",Order =54}, 
new Culture(){Name="quz-PE",Title ="runasimi (Peru Suyu)",Order =55}, 
new Culture(){Name="quz-EC",Title ="runasimi (Ecuador Suyu)",Order =56}, 
new Culture(){Name="quz-BO",Title ="runasimi (Bolivia Suyu)",Order =57}, 
new Culture(){Name="qut-GT",Title ="K'iche (Guatemala)",Order =58}, 
new Culture(){Name="pt-PT",Title ="português (Portugal)",Order =59}, 
new Culture(){Name="pt-BR",Title ="Português (Brasil)",Order =60}, 
new Culture(){Name="ps-AF",Title ="پښتو (افغانستان)",Order =61}, 
new Culture(){Name="prs-AF",Title ="درى (افغانستان)",Order =62}, 
new Culture(){Name="pl-PL",Title ="polski (Polska)",Order =63}, 
new Culture(){Name="pa-IN",Title ="ਪੰਜਾਬੀ (ਭਾਰਤ)",Order =64}, 
new Culture(){Name="or-IN",Title ="ଓଡ଼ିଆ (ଭାରତ)",Order =65}, 
new Culture(){Name="oc-FR",Title ="Occitan (França)",Order =66}, 
new Culture(){Name="nso-ZA",Title ="Sesotho sa Leboa (Afrika Borwa)",Order =67}, 
new Culture(){Name="nn-NO",Title ="norsk, nynorsk (Noreg)",Order =68}, 
new Culture(){Name="nl-NL",Title ="Nederlands (Nederland)",Order =69}, 
new Culture(){Name="nl-BE",Title ="Nederlands (België)",Order =70}, 
new Culture(){Name="ne-NP",Title ="नेपाली (नेपाल)",Order =71}, 
new Culture(){Name="nb-NO",Title ="norsk, bokmål (Norge)",Order =72}, 
new Culture(){Name="mt-MT",Title ="Malti (Malta)",Order =73}, 
new Culture(){Name="ms-MY",Title ="Bahasa Malaysia (Malaysia)",Order =74}, 
new Culture(){Name="ms-BN",Title ="Bahasa Malaysia (Brunei Darussalam)",Order =75}, 
new Culture(){Name="mr-IN",Title ="मराठी (भारत)",Order =76}, 
new Culture(){Name="moh-CA",Title ="Kanien'kéha (Canada)",Order =77}, 
new Culture(){Name="mn-Mong-CN",Title ="ᠮᠤᠨᠭᠭᠤᠯ ᠬᠡᠯᠡ (ᠪᠦᠭᠦᠳᠡ ᠨᠠᠢᠷᠠᠮᠳᠠᠬᠤ ᠳᠤᠮᠳᠠᠳᠤ ᠠᠷᠠᠳ ᠣᠯᠣᠰ)",Order =78}, 
new Culture(){Name="mn-MN",Title ="Монгол хэл (Монгол улс)",Order =79}, 
new Culture(){Name="ml-IN",Title ="മലയാളം (ഭാരതം)",Order =80}, 
new Culture(){Name="mk-MK",Title ="македонски јазик (Македонија)",Order =81}, 
new Culture(){Name="mi-NZ",Title ="Reo Māori (Aotearoa)",Order =82}, 
new Culture(){Name="lv-LV",Title ="latviešu (Latvija)",Order =83}, 
new Culture(){Name="lt-LT",Title ="lietuvių (Lietuva)",Order =84}, 
new Culture(){Name="lo-LA",Title ="ລາວ (ສ.ປ.ປ. ລາວ)",Order =85}, 
new Culture(){Name="lb-LU",Title ="Lëtzebuergesch (Luxembourg)",Order =86}, 
new Culture(){Name="ky-KG",Title ="Кыргыз (Кыргызстан)",Order =87}, 
new Culture(){Name="ko-KR",Title ="한국어 (대한민국)",Order =88}, 
new Culture(){Name="kok-IN",Title ="कोंकणी (भारत)",Order =89}, 
new Culture(){Name="kn-IN",Title ="ಕನ್ನಡ (ಭಾರತ)",Order =90}, 
new Culture(){Name="km-KH",Title ="ខ្មែរ (កម្ពុជា)",Order =91}, 
new Culture(){Name="kl-GL",Title ="kalaallisut (Kalaallit Nunaat)",Order =92}, 
new Culture(){Name="kk-KZ",Title ="Қазақ (Қазақстан)",Order =93}, 
new Culture(){Name="ka-GE",Title ="ქართული (საქართველო)",Order =94}, 
new Culture(){Name="ja-JP",Title ="日本語 (日本)",Order =95}, 
new Culture(){Name="iu-Latn-CA",Title ="Inuktitut (kanata)",Order =96}, 
new Culture(){Name="iu-Cans-CA",Title ="ᐃᓄᒃᑎᑐᑦ (ᑲᓇᑕ)",Order =97}, 
new Culture(){Name="it-IT",Title ="italiano (Italia)",Order =98}, 
new Culture(){Name="it-CH",Title ="italiano (Svizzera)",Order =99}, 
new Culture(){Name="is-IS",Title ="íslenska (Ísland)",Order =100}, 
new Culture(){Name="ii-CN",Title ="ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ)",Order =101}, 
new Culture(){Name="ig-NG",Title ="Igbo (Nigeria)",Order =102}, 
new Culture(){Name="id-ID",Title ="Bahasa Indonesia (Indonesia)",Order =103}, 
new Culture(){Name="hy-AM",Title ="Հայերեն (Հայաստան)",Order =104}, 
new Culture(){Name="hu-HU",Title ="magyar (Magyarország)",Order =105}, 
new Culture(){Name="hsb-DE",Title ="hornjoserbšćina (Němska)",Order =106}, 
new Culture(){Name="hr-HR",Title ="hrvatski (Hrvatska)",Order =107}, 
new Culture(){Name="hr-BA",Title ="hrvatski (Bosna i Hercegovina)",Order =108}, 
new Culture(){Name="hi-IN",Title ="हिंदी (भारत)",Order =109}, 
new Culture(){Name="he-IL",Title ="עברית (ישראל)",Order =110}, 
new Culture(){Name="ha-Latn-NG",Title ="Hausa (Nigeria)",Order =111}, 
new Culture(){Name="gu-IN",Title ="ગુજરાતી (ભારત)",Order =112}, 
new Culture(){Name="gsw-FR",Title ="Elsässisch (Frànkrisch)",Order =113}, 
new Culture(){Name="gl-ES",Title ="galego (galego)",Order =114}, 
new Culture(){Name="gd-GB",Title ="Gàidhlig (An Rìoghachd Aonaichte)",Order =115}, 
new Culture(){Name="ga-IE",Title ="Gaeilge (Éire)",Order =116}, 
new Culture(){Name="fy-NL",Title ="Frysk (Nederlân)",Order =117}, 
new Culture(){Name="fr-MC",Title ="français (Principauté de Monaco)",Order =118}, 
new Culture(){Name="fr-LU",Title ="français (Luxembourg)",Order =119}, 
new Culture(){Name="fr-FR",Title ="français (France)",Order =120}, 
new Culture(){Name="fr-CH",Title ="français (Suisse)",Order =121}, 
new Culture(){Name="fr-CA",Title ="français (Canada)",Order =122}, 
new Culture(){Name="fr-BE",Title ="français (Belgique)",Order =123}, 
new Culture(){Name="fo-FO",Title ="føroyskt (Føroyar)",Order =124}, 
new Culture(){Name="fil-PH",Title ="Filipino (Pilipinas)",Order =125}, 
new Culture(){Name="fi-FI",Title ="suomi (Suomi)",Order =126}, 
new Culture(){Name="fa-IR",Title ="فارسى (ايران)",Order =127}, 
new Culture(){Name="eu-ES",Title ="euskara (euskara)",Order =128}, 
new Culture(){Name="et-EE",Title ="eesti (Eesti)",Order =129}, 
new Culture(){Name="es-VE",Title ="Español (Republica Bolivariana de Venezuela)",Order =130}, 
new Culture(){Name="es-UY",Title ="Español (Uruguay)",Order =131}, 
new Culture(){Name="es-US",Title ="Español (Estados Unidos)",Order =132}, 
new Culture(){Name="es-SV",Title ="Español (El Salvador)",Order =133}, 
new Culture(){Name="es-PY",Title ="Español (Paraguay)",Order =134}, 
new Culture(){Name="es-PR",Title ="Español (Puerto Rico)",Order =135}, 
new Culture(){Name="es-PE",Title ="Español (Perú)",Order =136}, 
new Culture(){Name="es-PA",Title ="Español (Panamá)",Order =137}, 
new Culture(){Name="es-NI",Title ="Español (Nicaragua)",Order =138}, 
new Culture(){Name="es-MX",Title ="Español (México)",Order =139}, 
new Culture(){Name="es-HN",Title ="Español (Honduras)",Order =140}, 
new Culture(){Name="es-GT",Title ="Español (Guatemala)",Order =141}, 
new Culture(){Name="es-ES",Title ="español (España)",Order =142}, 
new Culture(){Name="es-EC",Title ="Español (Ecuador)",Order =143}, 
new Culture(){Name="es-DO",Title ="Español (República Dominicana)",Order =144}, 
new Culture(){Name="es-CR",Title ="Español (Costa Rica)",Order =145}, 
new Culture(){Name="es-CO",Title ="Español (Colombia)",Order =146}, 
new Culture(){Name="es-CL",Title ="Español (Chile)",Order =147}, 
new Culture(){Name="es-BO",Title ="Español (Bolivia)",Order =148}, 
new Culture(){Name="es-AR",Title ="Español (Argentina)",Order =149}, 
new Culture(){Name="en-ZW",Title ="English (Zimbabwe)",Order =150}, 
new Culture(){Name="en-ZA",Title ="English (South Africa)",Order =151}, */
                           new Culture {Name = "en-US", Title = "English (United States)", Order = 152},
/*
new Culture(){Name="en-TT",Title ="English (Trinidad y Tobago)",Order =153}, 
new Culture(){Name="en-SG",Title ="English (Singapore)",Order =154}, 
new Culture(){Name="en-PH",Title ="English (Philippines)",Order =155}, 
new Culture(){Name="en-NZ",Title ="English (New Zealand)",Order =156}, 
new Culture(){Name="en-MY",Title ="English (Malaysia)",Order =157}, 
new Culture(){Name="en-JM",Title ="English (Jamaica)",Order =158}, 
new Culture(){Name="en-IN",Title ="English (India)",Order =159}, 
new Culture(){Name="en-IE",Title ="English (Eire)",Order =160}, 
new Culture(){Name="en-GB",Title ="English (United Kingdom)",Order =161}, 
new Culture(){Name="en-CA",Title ="English (Canada)",Order =162}, 
new Culture(){Name="en-BZ",Title ="English (Belize)",Order =163}, 
new Culture(){Name="en-AU",Title ="English (Australia)",Order =164}, 
new Culture(){Name="en-029",Title ="English (Caribbean)",Order =165}, 
new Culture(){Name="el-GR",Title ="ελληνικά (Ελλάδα)",Order =166}, 
new Culture(){Name="dv-MV",Title ="ދިވެހިބަސް (ދިވެހި ރާއްޖެ)",Order =167}, 
new Culture(){Name="dsb-DE",Title ="dolnoserbšćina (Nimska)",Order =168}, 
new Culture(){Name="de-LU",Title ="Deutsch (Luxemburg)",Order =169}, 
new Culture(){Name="de-LI",Title ="Deutsch (Liechtenstein)",Order =170}, 
new Culture(){Name="de-DE",Title ="Deutsch (Deutschland)",Order =171}, 
new Culture(){Name="de-CH",Title ="Deutsch (Schweiz)",Order =172}, 
new Culture(){Name="de-AT",Title ="Deutsch (Österreich)",Order =173}, 
new Culture(){Name="da-DK",Title ="dansk (Danmark)",Order =174}, 
new Culture(){Name="cy-GB",Title ="Cymraeg (y Deyrnas Unedig)",Order =175}, 
new Culture(){Name="cs-CZ",Title ="čeština (Česká republika)",Order =176}, 
new Culture(){Name="co-FR",Title ="Corsu (France)",Order =177}, 
new Culture(){Name="ca-ES",Title ="català (català)",Order =178}, 
new Culture(){Name="bs-Latn-BA",Title ="bosanski (Bosna i Hercegovina)",Order =179}, 
new Culture(){Name="bs-Cyrl-BA",Title ="босански (Босна и Херцеговина)",Order =180}, 
new Culture(){Name="br-FR",Title ="brezhoneg (Frañs)",Order =181}, 
new Culture(){Name="bo-CN",Title ="བོད་ཡིག (ཀྲུང་ཧྭ་མི་དམངས་སྤྱི་མཐུན་རྒྱལ་ཁབ།)",Order =182}, 
new Culture(){Name="bn-IN",Title ="বাংলা (ভারত)",Order =183}, 
new Culture(){Name="bn-BD",Title ="বাংলা (বাংলাদেশ)",Order =184}, 
new Culture(){Name="bg-BG",Title ="български (България)",Order =185}, 
new Culture(){Name="be-BY",Title ="Беларускі (Беларусь)",Order =186}, 
new Culture(){Name="ba-RU",Title ="Башҡорт (Россия)",Order =187}, 
new Culture(){Name="az-Latn-AZ",Title ="Azərbaycan­ılı (Azərbaycanca)",Order =188}, 
new Culture(){Name="az-Cyrl-AZ",Title ="Азәрбајҹан (Азәрбајҹан)",Order =189}, 
new Culture(){Name="as-IN",Title ="অসমীয়া (ভাৰত)",Order =190}, 
new Culture(){Name="ar-YE",Title ="العربية (اليمن)",Order =191}, 
new Culture(){Name="ar-TN",Title ="العربية (تونس)",Order =192}, 
new Culture(){Name="ar-SY",Title ="العربية (سوريا)",Order =193}, 
new Culture(){Name="ar-SA",Title ="العربية (المملكة العربية السعودية)",Order =194}, 
new Culture(){Name="ar-QA",Title ="العربية (قطر)",Order =195}, 
new Culture(){Name="ar-OM",Title ="العربية (عمان)",Order =196}, 
new Culture(){Name="arn-CL",Title ="Mapudungun (Chile)",Order =197}, 
new Culture(){Name="ar-MA",Title ="العربية (المملكة المغربية)",Order =198}, 
new Culture(){Name="ar-LY",Title ="العربية (ليبيا)",Order =199}, 
new Culture(){Name="ar-LB",Title ="العربية (لبنان)",Order =200}, 
new Culture(){Name="ar-KW",Title ="العربية (الكويت)",Order =201}, 
new Culture(){Name="ar-JO",Title ="العربية (الأردن)",Order =202}, 
new Culture(){Name="ar-IQ",Title ="العربية (العراق)",Order =203}, 
new Culture(){Name="ar-EG",Title ="العربية (مصر)",Order =204}, 
new Culture(){Name="ar-DZ",Title ="العربية (الجزائر)",Order =205}, 
new Culture(){Name="ar-BH",Title ="العربية (البحرين)",Order =206}, 
new Culture(){Name="ar-AE",Title ="العربية (الإمارات العربية المتحدة)",Order =207}, 
new Culture(){Name="am-ET",Title ="አማርኛ (ኢትዮጵያ)",Order =208}, 
new Culture(){Name="af-ZA",Title ="Afrikaans (Suid Afrika)",Order =209}, */
                       };
        }

        #endregion
    }
}